package com.CodeCraft.utils;

import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * 日期工具类，提供日期格式化和解析功能
 */
public class DateUtils {

    // 预定义的日期格式模式常量
    public static final String YYYY_MM_DD_HH_MM_SS="yyyy-MM-dd HH:mm:ss";

    /** 标准日期格式模式：年-月-日（例如：2023-05-15） */
    public static final String YYYY_MM_DD="yyyy-MM-dd";

    /** 斜杠分隔的日期格式模式：年/月/日（例如：2023/05/15） */
    public static final String _YYYYMMDD="yyyy/MM/dd";

    /** 紧凑型日期格式模式：年月日连续（例如：20230515） */
    public static final String YYYYMMDD="yyyyMMdd";

    /**
     * 将Date对象格式化为指定模式的字符串
     * @param date 需要格式化的日期对象
     * @param pattern 日期格式模式（如"yyyy-MM-dd"）
     * @return 格式化后的日期字符串
     */
    public static String format(Date date, String pattern) {
        // 创建SimpleDateFormat实例并调用format方法进行格式化
        return new SimpleDateFormat(pattern).format(date);
    }

    /**
     * 将字符串解析为Date对象
     * @param date 需要解析的日期字符串
     * @param pattern 与日期字符串匹配的格式模式
     * @return 解析成功的Date对象，失败时返回null并打印异常堆栈
     */
    public static Date parse(String date, String pattern) {
        try {
            // 创建SimpleDateFormat实例并调用parse方法进行解析
            return new SimpleDateFormat(pattern).parse(date);
        } catch (Exception e) {
            // 捕获解析异常并打印堆栈跟踪
            e.printStackTrace();
        }
        // 解析失败时返回null
        return null;
    }
}
